package cn.iocoder.yudao.module.enterprise.dal.dataobject.praxisProject;

import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;

import java.util.Date;

import static com.baomidou.mybatisplus.annotation.FieldStrategy.IGNORED;

/**
 * 实践项目 DO
 *
 * @author 管理员
 */
@TableName("member_praxis_project")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class EnterpriseProjectDO extends BaseDO {

    /**
     * 编号
     */
    @TableId
    private Long id;
    /**
     * 公司ID
     */
    private Long companyId;
    /**
     * 用户ID
     */
    private Long userId;
    /**
     * 项目名称
     */
    private String title;
    /**
     * 项目类型ID
     */
    private Long projectTypeId;
    /**
     * 举办单位logo
     */
    private String holdUnitUrl;
    /**
     * 举办单位名称
     */
    private String holdUnitName;
    /**
     * 项目说明
     */
    private String projectDescription;
    /**
     * 参赛类型;1:个人;2:团队;3:个人或团队;
     */
    private Integer entryType;
    /**
     * 参赛团队最大人数
     */
    private Integer itemPeopleNum;
    /**
     * 参赛须知
     */
    private String entryInformation;
    /**
     * 比赛规则
     */
    private String competitionRules;
    /**
     * 评选办法-评审规则
     */
    private String reviewRules;
    /**
     * 评选办法-评审工作要求
     */
    private String reviewRequire;
    /**
     * 参赛要求
     */
    private String entryRequire;
    /**
     * 项目奖励
     */
    private String projectRewards;
    /**
     * 视频介绍
     */
    private String videoUrl;
    /**
     * 大赛组织
     */
    private String competitionOrganization;
    /**
     * 比赛材料下载类型;1:已报名可下载,2:入选初赛可下载
     */
    private Integer annexDownType;
    /**
     * 状态;0:未发布;1:发布;2:下架
     */
    private Integer status;
    /**
     * 权重
     */
    private Integer weight;
    /**
     * 发布时间
     */
    private Date releaseTime;
    /**
     * 是否审核;0:待审核;1:审核中;2:已审核
     */
    private String examineFlag;
    /**
     * 是否审核;0:驳回;1:通过;
     */
    @TableField(updateStrategy = IGNORED)
    private String examineStatus;
    /**
     * 审核备注
     */
    @TableField(updateStrategy = IGNORED)
    private String examineNotes;

    private Date submitTime;
    private String examinePeople;
    /**
     * 浏览量
     */
    private Long viewNum;
    /**
     * 是否显示;0:隐藏,1:显示
     */
    private Integer showFlag;
    /**
     * 审核时间
     */
    @TableField(updateStrategy = IGNORED)
    private Date examineTime;
    /**
     * 类型;1:遴选;2:初赛;3:复赛;4:决赛;
     */
    private Integer scheduleType;
}
